package com.zrar.ak.gkpt.service.account;

import com.zrar.ak.gkpt.model.vo.UserVO;
import com.zrar.ak.gkpt.util.JsonPageResult;
import com.zrar.ak.gkpt.util.JsonResult;

/**
 * @InterfaceName: IBusinessAccountInfoService
 * @Description 台账信息Service层接口
 * @Author liyang
 * @Time 2020/04/02
 */
public interface IBusinessAccountInfoService {

    /**
     * 台账基本信息保存
     * @param jsonResult
     * @param formDataJson
     * @param userVO
     * @return
     */
    JsonResult accountBasicInfoSave(JsonResult jsonResult, String formDataJson, UserVO userVO);

    /**
     * 台账基本信息修改
     * @param jsonResult
     * @param formDataJson
     * @param userVO
     * @return
     */
    JsonResult accountBasicInfoUpdate(JsonResult jsonResult, String formDataJson, UserVO userVO);

    /**
     * 台账扩展信息保存
     * @param jsonResult
     * @param formDataJson
     * @param userVO
     * @return
     */
    JsonResult accountExpandInfoSave(JsonResult jsonResult, String formDataJson, UserVO userVO);

    /**
     * 台账扩展信息修改
     * @param jsonResult
     * @param formDataJson
     * @param userVO
     * @return
     */
    JsonResult accountExpandInfoUpdate(JsonResult jsonResult, String formDataJson, UserVO userVO);

    /**
     * 根据单位ID获取台账信息
     * @param unitId
     * @param jsonResult
     * @return
     */
    JsonResult accountInfoGetByUnitId(JsonResult jsonResult, String unitId);

    /**
     * 根据单位ID将对应的台账信息置为无效
     * @param jsonResult
     * @param unitId
     * @param accountType :台账类型(1:台账基本信息和台账扩展信息执行删除操作 2:台账扩展信息执行删除操作)
     * @return
     */
    JsonResult deleteAccountInfoByUnitId(JsonResult jsonResult, String unitId, String accountType);

    /**
     * 获取台账信息列表(分页模糊查询)
     * @param currentPage
     * @param pageSize
     * @param unitName
     * @return
     */
    JsonPageResult getAccountInfoList(JsonPageResult jsonResult, int currentPage, int pageSize, String unitName);

}
